/**
 * Clase que representa la estructura de la tabla en un objeto Java. Cada
 * atributo de la tabla es creado como variables y su formato como anotaciones
 *
 * @version 1.0, 25/04/12
 * @author avbravo
 */
package person.user;

import java.util.Date;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(name = "person_userBeans")
@RequestScoped
public class Beans {

    private Integer id = 0;
    private Integer id_persona = 0;
    private String nombre = "";
    private String clave = "";
    private String idioma = "";
    private Date login = new java.util.Date();
    private Date unLogin = new java.util.Date();
    private Date registrado = new java.util.Date();
    private Boolean activo = false;

    public Beans() {
    }

    /**
     * Método constructor que asigna todos los valores del registro de un
     * usuario
     *
     * @param id Atributo que identifica la llave primaria (Autosecuencia)
     * @param usuario Atributo del usuario para el login
     * @param clave Atributo que identifica la contraseña
     * @param idioma Atributo que identifica el idioma
     * @param login Atributo que identifica la fecha de login
     * @param unlogin Atributo que identifica la fecha de finalizar session
     * @param activo Atributo que identifica si puede o no hacer login
     */
    public Beans(int id, int id_persona, String nombre, String clave, String idioma, Date login, Date unLogin, Date registrado, Boolean activo) {
        this.id = id;
        this.id_persona = id_persona;
        this.nombre = nombre;
        this.clave = clave;
        this.idioma = idioma;
        this.login = login;
        this.unLogin = unLogin;
        this.registrado = registrado;
        this.activo = activo;

    }

    /**
     * Método que permite inicializar todas las variables
     */
    public void clearBeans() {
        setId(0);
        setId_persona(0);
        setNombre("");
        setClave("");
        setIdioma("es");
        setLogin(new java.util.Date());
        setUnLogin(new java.util.Date());
        setRegistrado(new java.util.Date());
        setActivo(false);
    }

    /**
     * Método que permite sustituir caracteres especiales que puedan afectar las
     * sentencias SQL. por ejemplo: ('), (/). Debe ser utilizado en el (set) de
     * los atributos tipo String.
     *
     * @param data cualquier dato tipo String
     * @return Devuelve el dato con la sustitución de caracteres especiales
     */
    private String strScape(String data) {
        data = data.trim();
        data = data.replace("'", "''");
        data = data.replace("\\", "\\\\");
        return data;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId_persona(Integer id_persona) {
        this.id_persona = id_persona;
    }

    public Integer getId_persona() {
        return this.id_persona;
    }

    public void setNombre(String usuario) {
        this.nombre = strScape(usuario);
    }

    public String getNombre() {
        return strScape(this.nombre);
    }

    public void setClave(String clave) {
        this.clave = strScape(clave);
    }

    public String getClave() {
        return this.clave;
    }

    public void setIdioma(String idioma) {
        this.idioma = idioma;
    }

    public String getIdioma() {
        return this.idioma;
    }

    public void setLogin(Date login) {
        this.login = login;
    }

    public Date getLogin() {
        return this.login;
    }

    public void setActivo(Boolean activo) {
        this.activo = activo;
    }

    public Boolean getActivo() {
        return this.activo;
    }

    public Date getUnLogin() {
        return unLogin;
    }

    public void setUnLogin(Date unlogin) {
        this.unLogin = unlogin;
    }

    public Date getRegistrado() {
        return registrado;
    }

    public void setRegistrado(Date registrado) {
        this.registrado = registrado;
    }
}
